package com.eduplatform.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eduplatform.dto.StudentDTO;

import java.util.List;

/**
 * 学生服务接口
 */
public interface StudentService {

    /**
     * 分页查询学生列表
     *
     * @param page           页码
     * @param size           每页大小
     * @param schoolId       学校ID
     * @param educationLevel 教育阶段
     * @param keyword        关键词（姓名、用户名）
     * @return 分页结果
     */
    IPage<StudentDTO> pageStudents(int page, int size, Long schoolId, Integer educationLevel, String keyword);

    /**
     * 获取学生详情
     *
     * @param id 学生ID
     * @return 学生详情
     */
    StudentDTO getStudentDetail(Long id);

    /**
     * 添加学生
     *
     * @param studentDTO 学生数据
     * @return 是否成功
     */
    boolean addStudent(StudentDTO studentDTO);

    /**
     * 更新学生
     *
     * @param studentDTO 学生数据
     * @return 是否成功
     */
    boolean updateStudent(StudentDTO studentDTO);

    /**
     * 删除学生
     *
     * @param id 学生ID
     * @return 是否成功
     */
    boolean deleteStudent(Long id);

    /**
     * 批量导入学生
     *
     * @param students 学生列表
     * @return 是否成功
     */
    boolean batchImportStudents(List<StudentDTO> students);

    /**
     * 根据学校ID获取学生列表
     *
     * @param schoolId 学校ID
     * @return 学生列表
     */
    List<StudentDTO> getStudentsBySchoolId(Long schoolId);

    /**
     * 更新学生状态
     *
     * @param id     学生ID
     * @param status 状态：0-禁用，1-启用
     * @return 是否成功
     */
    boolean updateStudentStatus(Long id, Integer status);

    /**
     * 重置学生密码
     *
     * @param id 学生ID
     * @return 是否成功
     */
    boolean resetStudentPassword(Long id);
}